package com.xiao.bargain.mqserver;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiao.bargain.entity.BarginEntity;
import com.xiao.bargain.entity.BarginHuodongEntity;
import com.xiao.bargain.feign.AdminFeign;
import com.xiao.bargain.service.BarginHuodongService;
import com.xiao.bargain.service.BarginService;
import com.xiao.group.common.Vo.ReturnMq;
import com.xiao.group.common.Vo.UsersEntity;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.UUID;

@Component
@RabbitListener(queues = "1901aMq")
public class MQReturn {

    @Autowired
    AdminFeign adminFeign;

    @Autowired
    BarginService barginService;

    @Autowired
    BarginHuodongService barginHuodongService;

    @RabbitHandler
    public void toreturnn(ReturnMq ReturnMq){
//      UUID
        UUID uuid = UUID.randomUUID();
//      获取用户信息
        UsersEntity info = adminFeign.info(ReturnMq.getUserId());
//      获取砍价订单信息
        BarginEntity barginEntity = barginService.getById(ReturnMq.getBarinId());
//      创建砍价活动表
        BarginHuodongEntity barginHuodongEntity = new BarginHuodongEntity();
//判断砍价的规则
        if(barginEntity.getKanroots() == 1 ){
            //砍价规则为  固定人数 砍 固定的 价格
            barginHuodongEntity.setKancount(barginEntity.getBarginRenshu());  // 要砍价的人数
            barginHuodongEntity.setKnayuyue(barginEntity.getGoodsPrice() - barginEntity.getGoodsDijia()); //砍价的金额
        }else if (barginEntity.getKanroots() == 2){
            //砍价规则为 最大的砍价金额 为多少 进行砍价
            barginHuodongEntity.setKanmax(barginEntity.getBarginMoney()); // 最多砍 的金额
        }
        barginHuodongEntity.setUserName(info.getUsername()); //赋值 用户姓名
        barginHuodongEntity.setUserid(info.getId());    // 赋值用户id
        barginHuodongEntity.setGoodsImg(barginEntity.getGoodsImg());// 赋值商品图片
        barginHuodongEntity.setGoodsPrice(barginEntity.getGoodsPrice()); // 赋值 商品价格
        barginHuodongEntity.setBarginId(ReturnMq.getBarinId());
        barginHuodongEntity.setGoodsId(barginEntity.getGoodsId());// 赋值 商品id
        barginHuodongEntity.setGoodsName(barginEntity.getGoodsName());// 赋值商品名称
        barginHuodongEntity.setWeiyi(uuid.toString());      //赋值 唯一标识
        barginHuodongEntity.setKaituanWeiyi(1);         //证明这是 开团人发起的
        barginHuodongEntity.setMoveStatus(1);           //赋值 看开的状态
        barginHuodongEntity.setInforma(barginEntity.getInfomation()); //赋值  标题
        barginHuodongEntity.setStartTime(barginEntity.getStartTime()); //赋值开始时间
        barginHuodongEntity.setJendTime(barginEntity.getJendTime());    //赋值 结束时间
        barginHuodongEntity.setXianshiStatis("1");  //赋值 显示状态
// Mq创建订单
        //判断 该用户是否创建过 订单,创建过不能再次创建
        BarginHuodongEntity huodongEntity = barginHuodongService.getOne(new QueryWrapper<BarginHuodongEntity>().eq("userid", ReturnMq.getUserId()).eq("bargin_id", ReturnMq.getBarinId()).eq("goods_id",barginEntity.getGoodsId()));
        if(huodongEntity ==null){
            barginEntity.setBuystatus(1);
            barginService.updateById(barginEntity);
            boolean save = barginHuodongService.save(barginHuodongEntity);
        }else  if (huodongEntity != null){
            System.out.println("创建过订单");
        }
    }
}
